home *** CD-ROM | disk | FTP | other *** search
- ' $linesize:132
- ' $title: 'CNFG-SUB.BAS CPC15-1B, Copyright 1987 by D. Thomas Mack'
- ' Copyright 1987 by D. Thomas Mack, all rights reserved.
- ' Name ...............: CNFG-SUB.BAS
- ' Written by .........: D. Thomas Mack
- ' First Released .....: March 15, 1987
- ' Subsequent Releases.: June 7, 1987
- ' Copyright ..........: 1987
- ' Purpose.............: The Remote Bulletin Board System for the IBM PC,
- ' RBBS-PC, configuration program -- CONFIG.BAS
- ' utilizes a lot of menus and string space.
- ' These are incorporated within CNFG-SUB.BAS as a
- ' seperately callable subroutines in order to free
- ' up as much code as possible within the 64K code
- ' segment used by CONFIG.BAS.
- ' Parameters..........: Most parameters are passed via a COMMON statement.
- '
- ' Subroutine Line Function of Subroutine
- ' Name Number
- ' ALLCAPS 61212+ Captialize a string
- ' ANYINTEGER 61450 Prompt for any integer
- ' ANYNUMBER 61400 Prompt for any number
- ' ASKRO 61000 Ask a question on a specific row
- ' ASKUPS 61300 Ask for identifying field in USERS record
- ' CHKFMSDIR 61700 Check FMS directory for valid structure
- ' CNFGINIT 60385 Initialize CONFIG's constants
- ' DISPLAY 12190 Display the CONFIG menu pages
- ' FINDFILE 61600 Determine whether a file exists
- ' GETNUMYN 61150 Get TRUE/FALSE answer to a YES/NO question
- ' GETYESNO 61200 Ask a question with a "yes" or "no" response
- ' MMINTEGER 61500 Prompt for integer with min and a max
- ' REMOVE 61800 Remove characters from a string
- '
- ' $INCLUDE: 'CNFG-VAR.BAS'
- '
- ' $SUBTITLE: 'DISPLAY - subroutine to display CONFIG's menus'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- DISPLAY
- '
- ' INPUT PARAMETERS -- PARAMETER DESCRIPTION
- ' IX = 0 DISPLAY THE CHOICE OF MENUS
- ' IX = -1 RE-READ THE INPUT (INVALID REQUEST)
- ' IX > 0 DISPLAY THE APPROPRIATE PAGE
- '
- ' OUTPUT PARAMETERS -- HJ$ OPTION SELECTED
- ' IPAGE MENU PAGE CONTAINING OPTION
- ' ILOOKUP INDEX (1 TO 20) OF OPTION SELECTED
- '
- ' SUBROUTINE PURPOSE -- TO DISPLAY CONFIG'S MENUS AND REQUEST OPTION
- '
- SUB DISPLAY STATIC
- '
- ' *****************************************************************************
- ' * DISPLAY CONFIG'S MAIN FUNCTION KEY MENU *
- ' *****************************************************************************
- '
- IF IX > 0 THEN _
- GOTO 12320
- IF IX = -1 THEN _
- GOTO 12590
- 12190 COLOR FG,BG,BORDER
- CLS
- DISPLAYED.PAGE.NUMBER = 0
- I! = FRE(C$)
- COLOR 0,7,0
- LOCATE 4,10
- PRINT "RBBS-PC CPC15.1 CONFIGURATION PROGRAM " + CONFIG.VERSION$
- COLOR FG,BG,BORDER
- LOCATE 1,1,0
- PRINT "Copyright (c) 1983-1987 Tom Mack"
- LOCATE 2,1,0
- PRINT "10210 Oxfordshire Rd., Great Falls, VA 22066";
- IF F THEN _
- GOSUB 24970
- LOCATE 5,2
- PRINT " F1 Global RBBS-PC Parameters (part 1)
- LOCATE 6,2
- PRINT " F2 Global RBBS-PC Parameters (part 2)
- LOCATE 7,2
- PRINT " F3 Global RBBS-PC Parameters (part 3)
- LOCATE 8,2
- PRINT " F4 Parameters for static RBBS-PC Files
- LOCATE 9,2
- PRINT " F5 Parameters for dynamic RBBS-PC's Files
- LOCATE 10,2
- PRINT " F6 Parameters for RBBS-PC's 'Doors'
- LOCATE 11,2
- PRINT " F7 Parameters for RBBS-PC's Security
- LOCATE 12,2
- PRINT " F8 Parameters for multiple RBBS-PC's
- LOCATE 13,2
- PRINT " F9 RBBS-PC utilities
- LOCATE 14,2
- PRINT " F10 RBBS-PC File Management Faciliites"
- LOCATE 15,2
- PRINT " Shift-F1 RBBS-PC Communications Parameters"
- LOCATE 16,2
- PRINT " Shift-F2 Parameters for RBBS-PC NET-MAIL
- LOCATE 17,2
- PRINT " Shift-F3 New users parameters"
- LOCATE 18,2
- PRINT " Shift-F4 Reserved for future use"
- LOCATE 19,2
- PRINT " Shift-F5 Reserved for future use"
- LOCATE 20,2
- PRINT " Shift-F6 Reserved for future use"
- LOCATE 21,2
- PRINT " Shift-F7 Reserved for future use"
- LOCATE 22,2
- PRINT " Shift-F8 Reserved for future use"
- XX$ = "Press END to terminate or Function Key to select page for parameters shown "
- GOSUB 50345
- LOCATE ,,1
- 12310 GOSUB 22160
- 12320 IF IX THEN _ 'IX Key Where to branch to
- ON IX GOTO 12360, _ ' 1 F1 - Global Parameters (Part 1)
- 12370, _ ' 2 F2 - Global Parameters (Part 2)
- 12380, _ ' 3 F3 - Global Parameters (Part 3)
- 12390, _ ' 4 F4 - Static RBBS-PC Files
- 12400, _ ' 5 F5 - Dynamic RBBS-PC Files
- 12410, _ ' 6 F6 - RBBS-PC "doors"
- 12420, _ ' 7 F7 - RBBS-PC security parameters
- 12470, _ ' 8 F8 - Multiple RBBS-PC parameters
- 12480, _ ' 9 F9 - RBBS-PC's utilities
- 12490, _ '10 F10 - RBBS-PC File Manager
- 12500, _ '11 Shift-F1 - RBBS-PC communications parameters
- 12510, _ '12 Shift-F2 - RBBS-PC Net Mail
- 12520, _ '13 Shift-F3 - New user parameters
- 12310, _ '14 Shift-F4 - Reserved for future use
- 12310, _ '15 Shift-F5 - Reserved for future use
- 12310, _ '16 Shift-F6 - Reserved for future use
- 12310, _ '17 Shift-F7 - Reserved for future use
- 12310, _ '18 Shift-F8 - Reserved for future use
- 12340, _ '19 PgUp - Go to previous page
- 12330, _ '20 PgDn - Go to next page
- 12630, _ '21 End - Terminate CONFIG
- 12350 '22 Enter - Re-display current page
- GOTO 12310
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO HANDLE UNDEFINED OPTIONS *
- ' *****************************************************************************
- '
- 12325 IX = IPAGE
- GOTO 12320
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO HANDLE PAGE UP OF DISPLAYS *
- ' *****************************************************************************
- '
- 12330 IF (DISPLAYED.PAGE.NUMBER + 1 ) > 13 THEN _
- GOTO 12190
- IX = DISPLAYED.PAGE.NUMBER + 1
- GOTO 12320
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO HANDLE PAGE DOWN OF DISPLAYS *
- ' *****************************************************************************
- '
- 12340 IF (DISPLAYED.PAGE.NUMBER - 1) < 1 THEN _
- GOTO 12190
- IX = DISPLAYED.PAGE.NUMBER - 1
- GOTO 12320
- '
- ' *****************************************************************************
- ' * RETURN TO PRIMARY MENU SELECTION DISPLAY *
- ' *****************************************************************************
- '
- 12350 GOSUB 60380
- GOTO 12310
- '
- ' *****************************************************************************
- ' * COMMON CONFIGURATION PROGRAM MENU AND PAGE DISPLAY *
- ' *****************************************************************************
- '
- 12360 DISPLAYED.PAGE.NUMBER = 1
- GOSUB 24800
- LOCATE 3,10
- PRINT " 1. SYSOP's First Name --------------------------- " + SYSOP.FIRST.NAME$
- LOCATE 4,10
- PRINT " 2. SYSOP's Last Name ---------------------------- " + SYSOP.LAST.NAME$
- LOCATE 5,10
- PRINT " 3. Password #1 for SYSOP to sign on remotely ---- " + MN1$
- LOCATE 6,10
- PRINT " 4. Password #2 for SYSOP to sign on remotely----- " + MN2$
- LOCATE 7,10
- PRINT " 5. Password for SYSOP to sign on locally -------- " + LOCAL.PASSWORD$
- LOCATE 8,10
- PRINT " 6. SYSOP's default sign-on mode ----------------- " + EXPERT.USER$
- LOCATE 9,10
- PRINT " 7. SYSOP's office hours -------------------------"STR$(START.OFFICE.HOURS);" to"STR$(END.OFFICE.HOURS)
- LOCATE 10,10
- PRINT " 8. Page SYSOP using printer's bell -------------- " + M11$
- LOCATE 11,10
- PRINT " 9. Deny access to callers who use 300 baud ------ " + RESTRICT.BAUD$
- LOCATE 12,10
- PRINT "10. Are you using ANSI.SYS with a color monitor -- " + USE.COLOR$
- LOCATE 13,10
- PRINT "11. Go off-line whenever a DISK FULL occurs ------ " + DISKFULL.GO.OFFLINE$
- LOCATE 14,10
- PRINT "12. Prompt bell default is ----------------------- " + PROMPT.BELL$
- LOCATE 15,10
- PRINT "13. Maximum time per session (in minutes) --------"STR$(MINUTES.PER.SESSION!)
- LOCATE 16,10
- PRINT "14. Limit each user to" + STR$(MINUTES.PER.SESSION!) + " minutes/day? " + STRING$((14-LEN(STR$(MINUTES.PER.SESSION!))),45) + " " + LIMIT.DAILY.TIME$
- LOCATE 17,10
- PRINT "15. # Months of inactivity before user deleted ---"STR$(ACT.MNTHS.B4.DELETING)
- LOCATE 18,10
- PRINT "16. Name of RBBS-PC shown initially is ----------- " + RBBS.NAME$
- LOCATE 19,10
- PRINT "17. Foreground color (for color monitors) is -----"STR$(FG)
- LOCATE 20,10
- PRINT "18. Background color (for color monitors) is -----"STR$(BG)
- LOCATE 21,10
- PRINT "19. The border color (for color monitors) is -----"STR$(BORDER)
- LOCATE 22,10
- PRINT "20. Users that can elect to bypass messages ------ " + NOT.YET.IN$ ' SL.TO.BYPASS.MSGS
- GOTO 12580
- 12370 DISPLAYED.PAGE.NUMBER = 2
- GOSUB 24800
- LOCATE 3,10
- PRINT "21. Remind users of messages that they left ------ " + MESSAGE.REMINDER$
- LOCATE 4,10
- PRINT "22. Remind users of # uploads and downloads? ----- " + REMIND.FILE.TRANSFERS$
- LOCATE 5,10
- PRINT "23. Remind users of their terminal profile? ------ " + REMIND.PROFILE$
- LOCATE 6,10
- PRINT "24. Default user page length is ------------------" + STR$(PAGE.LENGTH)
- LOCATE 7,10
- PRINT "25. Maximum number of lines allowed per message --" + STR$(MAX.MESSAGE.LINES)
- LOCATE 8,10
- PRINT "26. Require non-ascii protocol for BASIC files --- " + REQUIRE.NON.ASCII$
- LOCATE 9,10
- PRINT "27. Factor to extend session time for uploads ----" + STR$(UPLOAD.TIME.FACTOR!)
- LOCATE 10,10
- PRINT "28. Name of required questionnaire --------------- " + REQUIRED.QUESTIONNAIRE$
- LOCATE 11,10
- PRINT "29. Is system 'welcome' interruptable? ----------- " + WELCOME.INTERRUPTABLE$
- LOCATE 12,10
- PRINT "30. Are system bulletins to be 'optional'? ------- " + BULLETINS.OPTIONAL$
- LOCATE 13,10
- PRINT "31. Type of PC RBBS-PC will be running on? ------- " + COMPUTER.TYPE$
- LOCATE 14,10
- PRINT "32. Symbols to use for SYSOP commands ------------ " + SYSOP.COMMANDS$
- LOCATE 15,10
- PRINT "33. Symbols to use for MAIN menu commands -------- " + MAIN.COMMANDS$
- LOCATE 16,10
- PRINT "34. Symbols to use for FILE menu commands -------- " + FILE.COMMANDS$
- LOCATE 17,10
- PRINT "35. Symbols to use for UTILITIES menu commands --- " + UTIL.COMMANDS$
- LOCATE 18,10
- PRINT "36. Symbols to use for global commands ----------- " + GLOBAL.COMMANDS$
- LOCATE 19,10
- PRINT "37. Show section in command prompt --------------- " + SHOW.SECTION$
- LOCATE 20,10
- PRINT "38. Show commands in command prompt -------------- " + COMMANDS.IN.PROMPT$
- LOCATE 21,10
- PRINT "39. Use machine language routines for speed ------ " + TURBO.RBBS$
- LOCATE 22,10
- PRINT "40. Restrict valid commands to current section --- " + FNYESNO$(RESTRICT.VALID.CMDS)
- GOTO 12580
- 12380 DISPLAYED.PAGE.NUMBER = 3
- GOSUB 24800
- LOCATE 3,10
- PRINT "41. Field used to identify users ----------------- " + HASH.ID$
- LOCATE 4,10
- PRINT "42. Field used to distinguish users with same ID-- " + INDIV.ID$
- LOCATE 5, 10
- PRINT "43. RESTRICT users by SUBSCRIPTION date ---------- " + RESTRICT.BY.DATE$
- LOCATE 6,10
- PRINT "44. Security level when SUBSCRIPTION expires -----" + STR$(EXPIRED.SECURITY)
- LOCATE 7,10
- PRINT "45. Days before expiration to warn callers -------" + STR$(DAYS.TO.WARN)
- LOCATE 8,10
- PRINT "46. Default # days in SUBSCRIPTION PERIOD --------" + STR$(DAYS.IN.SUBSCRIPTION.PERIOD)
- LOCATE 9,10
- PRINT "47. Turn printer off after each recycle ---------- " + TURN.PRINTER.OFF$
- LOCATE 10,10
- PRINT "48. Play musical themes for RBBS functions ------- " + MUSIC$
- LOCATE 11,10
- PRINT "49. BUFFER SIZE used when displaying text files --" + STR$(BUFFER.SIZE)
- LOCATE 12,10
- PRINT "50. File shown users when SYSOP wants system next " + NOT.YET.IN$ ' F7.MESSAGE$
- LOCATE 13,10
- PRINT "51. Call-back verification ----------------------- " + NOT.YET.IN$ ' CALLBACK.VERIFICATION$
- LOCATE 14,10
- PRINT "52. On a unrecoverable error --------------------- " + NOT.YET.IN$ ' HALT.ON.ERROR$
- GOTO 12580
- 12390 DISPLAYED.PAGE.NUMBER = 4
- GOSUB 24800
- IF INSTR(DRIVE.FOR.BULLETINS$,":") < 1 THEN _
- DRIVE.FOR.BULLETINS$ = DRIVE.FOR.BULLETINS$ + ":"
- LOCATE 3,10
- PRINT "61. Drive and file describing 'bulletins' is ----- " + DRIVE.FOR.BULLETINS$ + BULLETIN.MENU$
- LOCATE 4,10
- PRINT "62. Number of active 'bulletins' -----------------" + STR$(ACTIVE.BULLETINS)
- LOCATE 5,10
- PRINT "63. Prefix used to name bulletin files is -------- " + BULLETIN.PREFIX$
- LOCATE 6,10
- PRINT "64. Drive and path (optional) for 'help' files --- " + HELP.PATH$
- LOCATE 7,10
- PRINT "65. Prefix used to name four major 'help' files -- " + HELP.FILE.PREFIX$
- LOCATE 8,10
- PRINT "66. Extension for help files of individual cmds -- " + HELP.EXTENSION$
- LOCATE 9,10
- PRINT "67. HELP file when callers CATEGORIZE uploads ---- " + UPCAT.HELP$
- LOCATE 10,10
- PRINT "68. Name of 'newuser' file shown to new users ---- " + NEWUSER.FILE$
- LOCATE 11,10
- PRINT "69. Name of 'welcome' file shown at logon -------- " + WELCOME.FILE$
- LOCATE 12,10
- PRINT "70. The SYSOP's command menu is named ------------ " + MENU$(1)
- LOCATE 13,10
- PRINT "71. The MAIN system menu is named ---------------- " + MENU$(2)
- LOCATE 14,10
- PRINT "72. The file subsystem menu is named ------------- " + MENU$(3)
- LOCATE 15,10
- PRINT "73. The utilities subsystem menu is named -------- " + MENU$(4)
- LOCATE 16,10
- PRINT "74. Menu that lists available conferences is ----- " + CONFERENCE.MENU$
- LOCATE 17,10
- PRINT "75. Menu that lists questionnaires available is -- " + ANS.MENU$
- LOCATE 18,10
- PRINT "76. File containing invalid user names ----------- " + TRASHCAN.FILE$
- GOTO 12580
- 12400 DISPLAYED.PAGE.NUMBER = 5
- GOSUB 24800
- LOCATE 3,10
- PRINT "81. System file containing messages is named ----- " + MAIN.MESSAGE.FILE$
- LOCATE 4,10
- PRINT "82. System file for recording users is named ----- " + MAIN.USER.FILE$
- LOCATE 5,10
- PRINT "83. System file for comments to SYSOP is named --- " + COMMENTS.FILE$
- LOCATE 6,10
- PRINT "84. Record comments as private messages ---------- " + COMMENTS.AS.MESSAGES$
- LOCATE 7,10
- PRINT "85. System file for 'callers' is named ----------- " + CALLERS.FILE$
- LOCATE 8,10
- PRINT "86. Extended logging to 'callers' file ----------- " + EXTENDED.LOGGING$
- LOCATE 9,10
- PRINT "87. Wrap-around the 'callers' file --------------- " + NOT.YET.IN$ ' WRAP.CALLERS.FILE$
- GOTO 12580
- 12410 DISPLAYED.PAGE.NUMBER = 6
- GOSUB 24800
- LOCATE 3,9
- PRINT "101. Is the 'door' subystem available? ------------ " + DOORS.AVAILABLE$
- LOCATE 4,9
- PRINT "102. The 'door' subsystem menu is named ----------- " + MENU$(5)
- LOCATE 5,9
- PRINT "103. File RBBS builds dynamically to open a 'door'- " + RCTTY.BAT$
- LOCATE 6,9
- PRINT "104. When a 'door' closes, file to re-invoke RBBS - " + RBBS.BAT$
- LOCATE 7,9
- PRINT "105. Drive to look for COMMAND.COM on ------------- " + DISK.FOR.DOS$
- LOCATE 8,9
- PRINT "106. Use the Dos 'CTTY' command to redirect I/O --- " + REDIRECT.IO.METHOD$
- LOCATE 9,9
- PRINT "107. Invoke RBBS 'drivers' via ... ---------------- " + GO.TO.SHELL$
- GOTO 12580
- 12420 DISPLAYED.PAGE.NUMBER = 7
- GOSUB 24800
- LOCATE 3,9
- PRINT "121. Minimum security level to get onto RBBS -------" + STR$(MINIMUM.LOGON.SECURITY)
- LOCATE 4,9
- PRINT "122. Default security level for new callers --------" + STR$(DEFAULT.SECURITY.LEVEL)
- LOCATE 5,9
- PRINT "123. Security level for SYSOP ----------------------" + STR$(SYSOP.SECURITY.LEVEL)
- LOCATE 6,9
- PRINT "124. Files with download security are listed in ---- " + FILESEC.FILE$
- LOCATE 7,9
- PRINT "125. Minimum security level to see SYSOP's menu ----" + STR$(SYSOP.MENU.SECURITY.LEVEL)
- LOCATE 8,9
- PRINT "126. Minimum security level to use RBBS-PC 'doors'--" + STR$(DOORS.SECURITY.LEVEL)
- LOCATE 9,9
- PRINT "127. Max # security violations before disconnect ---" + STR$(MAXIMUM.VIOLATIONS)
- M22$ = STR$(SF)
- IX = SYSOP.FUNCTION(1)
- FOR I = 2 TO NUM.SYSOP
- IF IX <> SYSOP.FUNCTION(I) THEN _
- M22$ = "(Variable)" : _
- GOTO 12430 ' CPC15-1B
- NEXT
- 12430 LOCATE 10,9
- PRINT "128. Security level for SYSOP functions ------------" + M22$
- M23$ = STR$(MM)
- IX = MAIN.FUNCTION(1)
- FOR I = 2 TO NUM.MAIN
- IF IX<>MAIN.FUNCTION(I) THEN _
- M23$ = "(Variable)" : _
- GOTO 12440
- NEXT ' CPC15-1B
- 12440 LOCATE 11,9
- PRINT "129. Security level for main menu functions --------" + M23$
- M24$ = STR$(FC)
- IX = FILES.FUNCTION(1)
- FOR I = 2 TO NUM.FILES
- IF IX<>FILES.FUNCTION(I) THEN _
- M24$ = "(Variable)" : _
- GOTO 12450 ' CPC15-1B
- NEXT
- 12450 LOCATE 12,9
- PRINT "130. Security level for file menu functions --------" + M24$
- M25$ = STR$(UE)
- IX = UTILITY.FUNCTION(1)
- FOR I = 2 TO NUM.UTILITY
- IF IX<>UTILITY.FUNCTION(I) THEN _
- M25$ = "(Variable)" : _
- GOTO 12460 ' CPC15-1B
- NEXT
- 12460 LOCATE 13,9
- PRINT "131. Security level for utilities menu functions ---" + M25$
- M26$ = STR$(GB)
- IX = GLOBAL.FUNCTION(1)
- FOR I = 1 TO NUM.GLOBAL
- IF IX<>GLOBAL.FUNCTION(I) THEN _
- M26$ = "(Variable)" : _
- GOTO 12465 ' CPC15-1B
- NEXT
- 12465 LOCATE 14,9
- PRINT "132. Security level for GLOBAL commands ------------" + M26$
- LOCATE 15,9
- PRINT "133. File with privileged group passwords is named-- "+ PASSWORD.FILE$
- LOCATE 16,9
- PRINT "134. Max # of password changes in a session --------" + STR$(MAXIMUM.PASSWORD.CHANGES)
- LOCATE 17,9
- PRINT "135. Min. security level for temp. password changes-" + STR$(MINIMUM.SECURITY.FOR.TEMP.PASSWORD)
- LOCATE 18,9
- PRINT "136. Min. security level to overwrite on uploads ---" + STR$(OVERWRITE.SECURITY.LEVEL)
- LOCATE 19,9
- PRINT "137. User's security exempted from 'packing' -------" + STR$(SEC.LVL.EXEMPT.FRM.PURGING)
- LOCATE 20,9
- PRINT "138. Security level assigned new public messages --- " + NOT.YET.IN$ ' STR$(NEW.PUBLIC.MSGS.SECURITY)
- LOCATE 21,9
- PRINT "139. Security level assigned new private messages -- " + NOT.YET.IN$ ' STR$(NEW.PRIVATE.MSGS.SECURITY)
- LOCATE 22,9
- PRINT "140. Security able to revise a message's security -- " + NOT.YET.IN$ ' STR$(SECURITY.NEEDED.TO.CHANGE.MSGS)
- GOTO 12580
- 12470 DISPLAYED.PAGE.NUMBER = 8
- GOSUB 30040
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
- MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD
- MAX.ALLOWED.MSGS.FRM.DEF = MAXIMUM.NUMBER.OF.MSGS
- GOSUB 24800
- LOCATE 3,9
- PRINT "141. Maximum number of concurrent RBBS-PC's -------" + STR$(MAXIMUM.NUMBER.OF.NODES)
- IF MAXIMUM.NUMBER.OF.NODES = 1 THEN _
- MT$ = "single RBBS-PC copy " ELSE _
- MT$ = "concurrent RBBS-PC's" : _
- GOSUB 21900 : _
- IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 5 THEN _ ' CPC15-1B
- GOTO 21810
- LOCATE 4,9
- PRINT "142. Environment running " + MT$ + " ------ " + NETWORK.TYPE$
- LOCATE 5,9
- PRINT "143. RBBS-PC 'recycle' method when users log off --- " + RECYCLE.TO.DOS$
- FILE$ = MAIN.MESSAGE.FILE$
- GOSUB 30180
- MAX.MSG.FILE.SIZE.FRM.DEF! = UG
- LOCATE 6,9
- PRINT "144. Number of records in the " + MAIN.USER.FILE$ + " file " + STRING$(16-LEN(MAIN.USER.FILE$),"-");STR$(MAX.USR.FILE.SIZE.FRM.DEF)
- LOCATE 7,9
- PRINT "145. Number of records in " + MAIN.MESSAGE.FILE$ + " file " + STRING$(20-LEN(MAIN.MESSAGE.FILE$),"-");STR$(MAX.MSG.FILE.SIZE.FRM.DEF!)
- LOCATE 8,9
- PRINT "146. Maximum number of messages allowed ------------" + STR$(MAX.ALLOWED.MSGS.FRM.DEF)
- LOCATE 9,9
- PRINT "147. Conference File Maintenance.
- GOTO 12580
- 12480 DISPLAYED.PAGE.NUMBER = 9
- GOSUB 24800
- RB = 0
- LOCATE 3,9
- PRINT "161. Pack " + MAIN.MESSAGE.FILE$ + " file.
- LOCATE 4,9
- PRINT "162. Rebuild " + MAIN.USER.FILE$ + " file.
- LOCATE 5,9
- PRINT "163. Print " + MAIN.MESSAGE.FILE$ + " 'header' records.
- LOCATE 6,9
- PRINT "164. Renumber messages in " + MAIN.MESSAGE.FILE$ + " file.
- LOCATE 7,9
- PRINT "165. Repair messages in " + MAIN.MESSAGE.FILE$ + " file.
- LOCATE 8,9
- PRINT "166. Make all users answer required questionnaire."
- LOCATE 9,9
- PRINT "167. Check FMS directory structure."
- GOTO 12580
- 12490 DISPLAYED.PAGE.NUMBER = 10
- GOSUB 24800
- LOCATE 3,9
- PRINT "181. Drive available for Uploading ---------------- " + DRIVE.FOR.UPLOADS$
- LOCATE 4,9
- PRINT "182. Name of directory for uploading -------------- " + UPLOAD.DIRECTORY$
- LOCATE 5,9
- PRINT "183. Drive/path where Upload Directory stored ----- " + UPLOAD.PATH$
- LOCATE 6,9
- PRINT "184. Drive(s) available for Downloading ----------- " + DRIVES.FOR.DOWNLOADS$
- LOCATE 7,9
- PRINT "185. Will you be using DOS sub-directories? ------- " + WILL.SUBDIRS.B.USED$
- LOCATE 8,9
- PRINT "186. Write Uploads to a DOS sub-directory? -------- " + UPLOAD.TO.SUBDIR$
- LOCATE 9,9
- PRINT "187. Are downloads from DOS sub-directories? ------ " + DOWNLOAD.TO.SUBDIR$
- LOCATE 10,9
- PRINT "188. List, change, add, delete sub-directories."
- LOCATE 11,9
- PRINT "189. File directory ext. (name dir of directories)- " + DIRECTORY.EXTENTION$
- LOCATE 12,9
- PRINT "190. Omit directory of directories in N)ew command " + OMIT.MAIN.DIRECTORY$
- LOCATE 13,9
- IF ALWAYS.STREW.TO$ = "" OR _
- ALWAYS.STREW.TO$ = "NONE" THEN _
- PRINT "191. Do not copy upload descriptions to another file." _
- ELSE PRINT "191. Copy all upload descriptions to -------------- " + ALWAYS.STREW.TO$
- LOCATE 14,9
- A$ = FMS.DIRECTORY$
- IF FMS.DIRECTORY$ = "" THEN _
- A$ = "[FMS is not active]"
- PRINT "192. Name of File Management System directory is -- " + A$
- LOCATE 15,9
- PRINT "193. Min SECURITY to CATEGORIZE uploads -----------" + STR$(SL.CATEGORIZE.UPLOADS)
- LOCATE 16,9
- PRINT "194. Limit file searches to FMS directory only ---- " + LIMIT.SEARCH.TO.FMS$
- LOCATE 17,9
- PRINT "195. Default category code for uploads ------------ " + DEFAULT.CATEGORY.CODE$
- LOCATE 18,9
- PRINT "196. File containing valid directory categories --- " + DIR.CATEGORY.FILE$
- LOCATE 19,9
- PRINT "197. Enable download of new files at logon -------- " + NEW.FILES.CHECK$
- LOCATE 20,9
- PRINT "198. Max length of description of uploaded file -- " + STR$(MAX.DESC.LEN)
- LOCATE 21,9
- PRINT "199. Min security level to view new uploads ------ " + STR$(MIN.SEC.TO.VIEW)
- LOCATE 22,9
- PRINT "200. Drive and path (optional) for directory files " + DIRECTORY.PATH$
- GOTO 12580
- 12500 DISPLAYED.PAGE.NUMBER = 11
- GOSUB 24800
- LOCATE 3,9
- PRINT "201. Communications port to be used by RBBS-PC ---- " + COM.PORT$
- LOCATE 4,9
- PRINT "202. # of seconds to wait for modem to initialize -" + STR$(MODEM.INIT.WAIT.TIME)
- LOCATE 5,9
- PRINT "203. Seconds to wait before issuing modem commands-" + STR$(MODEM.COMMAND.DELAY.TIME)
- LOCATE 6,9
- PRINT "204. Number of rings to wait before answering -----" + STR$(REQUIRED.RINGS);
- IF MID$(MODEM.INIT.COMMAND$,24,5) = "255 " THEN _
- PRINT "RING BACK";
- LOCATE 7,9
- PRINT "205. Use the RBBS-PC default Hayes commands? ------ " + M14$
- LOCATE 8,9
- PRINT "206. Is MICROCOM's MNP protocol available? -------- " + MNP.SUPPORT$
- LOCATE 9,9
- PRINT "207. Issue modem commands between rings ----------- " + COMMANDS.BETWEEN.RINGS$
- LOCATE 10,9
- PRINT "208. Baud rate to initially open modem at --------- " + MODEM.INIT.BAUD$
- LOCATE 11,9
- PRINT "209. Seconds waited before logging off idle users -" + STR$(WAIT.BEFORE.DISCONNECT)
- LOCATE 12,9
- PRINT "210. Are you using a 'DUMB' auto-answer modem? ---- " + DUMB.MODEM$
- LOCATE 13,9
- PRINT "211. Initialize Hayes 2400 firmware for RBBS-PC."
- LOCATE 14,9
- PRINT "212. # seconds to wait after dropping DTR ---------" + STR$(DTR.DROP.DELAY)
- LOCATE 15,9
- PRINT "213. Drive/path where EXTERNAL PROTOCOL pgms stored " + PROTOCOL.PATH$
- LOCATE 16,9
- PRINT "214. Use Xmodem in external protocol programs ----- " + FNYESNO$(USE.EXTERNAL.XMODEM)
- LOCATE 17,9
- PRINT "215. Always check caller for AUTODOWNLOAD support - " + FNYESNO$(ASK.IDENTITY)
- LOCATE 18,9
- IF MASTER.DIRECTORY.NAME$ = "" THEN _
- PRINT "216. Limit search for 'ALL' to non-FMS directory -- <none>" _
- ELSE PRINT "216. Limit search for 'ALL' to non-FMS directory -- " + MASTER.DIRECTORY.NAME$
- LOCATE 19,9
- PRINT "217. Is the modem a TDD (handles Baudot code)? ---- " + NOT.YET.IN$ ' BAUDOT$
- LOCATE 20,9
- PRINT "218. Modem flow control uses Request-to-Send (RTS)- " + RTS$ ' CPC15-1B
- GOTO 12580
- 12510 DISPLAYED.PAGE.NUMBER = 12
- GOSUB 24800
- LOCATE 3,9
- TIME.TO.DROP.TO.DOS$ = "None"
- IF TIME.TO.DROP.TO.DOS > -1 THEN _
- TIME.TO.DROP.TO.DOS$ = STRING$(4-(LEN(STR$(TIME.TO.DROP.TO.DOS))-1),"0") + MID$(STR$(TIME.TO.DROP.TO.DOS),2)
- 12512 PRINT "221. Time of day to exit to DOS ------------------- " + TIME.TO.DROP.TO.DOS$ ' CPC15-1B
- LOCATE 4,9
- PRINT "222. Net mail to invoke is ------------------------ " + NET.MAIL$ ' CPC15-1B
- GOTO 12580
- 12520 DISPLAYED.PAGE.NUMBER = 13
- GOSUB 24800
- LOCATE 3,9
- PRINT "241. Let new users set their preferences --------- " + NEWUSER.SETS.DEFAULTS$
- LOCATE 4,9
- PRINT "242. New users default sign-on mode -------------- " + NOT.YET.IN$ ' NEW.USER.DEFAULT.MODE$
- LOCATE 5,9
- PRINT "243. New users default file-transfer protocol ---- " + NOT.YET.IN$ ' NEW.USER.DEFAULT.PROTOCOL$
- LOCATE 6,9
- PRINT "244. Line feeds for new users default to --------- " + NOT.YET.IN$ ' NEW.USER.LINE.FEEDS$
- LOCATE 7,9
- PRINT "245. Nulls for new users default to -------------- " + NOT.YET.IN$ ' NEW.USER.NULLS$
- LOCATE 8,9
- PRINT "246. Prompt bell for new users defaults to ------- " + NOT.YET.IN$ ' NEW.USER.BELL$
- LOCATE 9,9
- PRINT "247. New users 'graphics' capability is assumed -- " + NOT.YET.IN$ ' NEW.USER.GRAPHICS$
- LOCATE 10,9
- PRINT "248. New users are assumed UPPERCASE only -------- " + NOT.YET.IN$ ' NEW.USER.CASE$
- LOCATE 11,9
- PRINT "249. New users message margins defaults to ------- " + NOT.YET.IN$ ' STR$(NEW.USER.MARGINS)
- LOCATE 12,9
- PRINT "250. Add new users to USERS file ----------------- " + REMEMBER.NEW.USERS$
- LOCATE 13,9
- PRINT "251. Let new users on even when USERS file full -- " + SURVIVE.NOUSER.ROOM$
- GOTO 12580
- 12530 DISPLAYED.PAGE.NUMBER = 14
- GOSUB 24800
- GOTO 12580
- 12540 DISPLAYED.PAGE.NUMBER = 15
- GOSUB 24800
- GOTO 12580
- 12550 DISPLAYED.PAGE.NUMBER = 16
- GOSUB 24800
- GOTO 12580
- 12560 DISPLAYED.PAGE.NUMBER = 17
- GOSUB 24800
- GOTO 12580
- 12570 DISPLAYED.PAGE.NUMBER = 18
- GOSUB 24800
- GOTO 12580
- 12580 GOSUB 24890
- 12590 GOSUB 22160
- IF IX THEN _ 'IX Key Where to branch to
- ON IX GOTO 12360, _ ' 1 F1 - Global Parameters (Part 1)
- 12370, _ ' 2 F2 - Global Parameters (Part 2)
- 12380, _ ' 3 F3 - Global Parameters (Part 3)
- 12390, _ ' 4 F4 - Static RBBS-PC Files
- 12400, _ ' 5 F5 - Dynamic RBBS-PC Files
- 12410, _ ' 6 F6 - RBBS-PC "doors"
- 12420, _ ' 7 F7 - RBBS-PC security parameters
- 12470, _ ' 8 F8 - Multiple RBBS-PC parameters
- 12480, _ ' 9 F9 - RBBS-PC's utilities
- 12490, _ '10 F10 - RBBS-PC File Manager
- 12500, _ '11 Shift-F1 - RBBS-PC communications parameters
- 12510, _ '12 Shift-F2 - RBBS-PC Net Mail
- 12520, _ '13 Shift-F3 - New user parameters
- 12310, _ '14 Shift-F4 - Reserved for future use
- 12310, _ '15 Shift-F5 - Reserved for future use
- 12310, _ '16 Shift-F6 - Reserved for future use
- 12310, _ '17 Shift-F7 - Reserved for future use
- 12310, _ '18 Shift-F8 - Reserved for future use
- 12340, _ '19 PgUp - Go to previous page
- 12330, _ '20 PgDn - Go to next page
- 12630, _ '21 End - Terminate CONFIG
- 12620 '22 Enter - Option selected followed by "enter"
- GOTO 12590
- 12620 GOSUB 50340
- IF VAL(HJ$) < 1 OR VAL(HJ$) > 260 THEN _
- GOTO 12580
- IPAGE = INT(VAL(HJ$)/20)
- ILOOKUP = VAL(HJ$) - (20*IPAGE)
- IPAGE = IPAGE + 1
- IF ILOOKUP < 1 THEN _
- ILOOKUP = 20 : _
- IPAGE = IPAGE - 1
- 12630 EXIT SUB
- '
- ' *****************************************************************************
- ' * IDENTIFY THE NETWORK TYPES THAT RBBS-PC CAN RUN IN *
- ' *****************************************************************************
- '
- 21810 CLS
- LOCATE 3,5
- PRINT "RBBS-PC is supported in the following:"
- LOCATE 5,20
- PRINT "Environment"
- LOCATE 7,10
- PRINT "0. Single RBBS-PC in an IBM DOS environment"
- LOCATE 9,10
- PRINT "1. MultiLink (multi-tasking under single DOS)
- LOCATE 11,10
- PRINT "2. Omninet (CORVUS)"
- LOCATE 13,10
- PRINT "3. PC-NET (Orchid)"
- LOCATE 15,10
- PRINT "4. DESQview (Quarterdeck)"
- LOCATE 17,10
- PRINT "5. 10 NET (Fox Research)" ' CPC15-1B
- LOCATE 19,10 ' CPC15-1B
- PRINT "6. IBM DOS (3.1 or above) file sharing not supported" ' CPC15-1B
- 21870 GOSUB 50340
- XX$ = "Select environment (0 to 6, ENTER to end)" ' CPC15-1B
- GOSUB 50345
- LINE INPUT;X$
- IF X$ = "" THEN _
- RETURN
- NETWORK.TYPE = VAL(X$)
- GOSUB 21890
- RETURN
- 21890 IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 6 THEN _ ' CPC15-1B
- GOTO 21870 ' CPC15-1B
- 21895 IF NETWORK.TYPE = 0 THEN _
- NETWORK.TYPE$ = "IBM's DOS
- 21900 IF NETWORK.TYPE = 1 THEN _
- NETWORK.TYPE$ = "MultiLink
- IF NETWORK.TYPE = 2 THEN _
- NETWORK.TYPE$ = "Omninet
- IF NETWORK.TYPE = 3 THEN _
- NETWORK.TYPE$ = "PC-NET
- IF NETWORK.TYPE = 4 THEN _
- NETWORK.TYPE$ = "DESQview"
- IF NETWORK.TYPE = 5 THEN _ ' CPC15-1B
- NETWORK.TYPE$ = "10 NET" ' CPC15-1B
- IF NETWORK.TYPE = 6 THEN _ ' CPC15-1B
- NETWORK.TYPE$ = "IBM's file sharing -- future"
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO HANDLE THE FUNCTION KEYS, SCROLL BETWEEN CONFIG'S *
- ' * PAGES OF OPTIONS, AND USER'S SELECTING A NUMERIC 4-CHARACTER OPTION. *
- ' *****************************************************************************
- '
- 22160 I! = FRE(C$)
- Y$ = INKEY$
- IX = 0
- IF LEN(Y$) < 1 THEN _
- GOTO 22160
- IF LEN(Y$) = 2 THEN _ ' IF A FUNCTION KEY, BRANCH
- GOTO 22240
- IF ASC(Y$) = 13 THEN _ ' IF A CARRIAGE RETURN, RETURN
- IX = 22 : _
- RETURN
- IF ASC(Y$) = 8 AND LEN(HJ$) > 0 THEN _
- HJ$ = LEFT$(HJ$,LEN(HJ$)-1) : _
- PRINT CHR$(29) + " " + CHR$(29); : _
- GOTO 22160
- IF ASC(Y$) < 48 OR ASC(Y$) > 57 THEN _
- GOTO 22160
- PRINT Y$;
- HJ$ = HJ$ + Y$
- OPTION$ = HJ$
- IF LEN(HJ$) > 4 THEN _ ' IF MORE THAN FOUR CHARACTERS,
- IX = 22 ' RETURN
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO HANDLE SET UP RETURN CODES FOR FUNCTION KEYS THAT *
- ' * WERE PRESSED ON THE LOCAL PC RUNNING CONFIG *
- ' *****************************************************************************
- '
- 22240 IX = ASC(RIGHT$(Y$,1))
- Y$ = "
- IF IX < 59 OR IX > 91 THEN _ ' IGNORE IF NOT F1 THROUGH F10 OR
- IX = 0: _ ' SHIFT-F1 THROUGH SHIFT-F8
- RETURN
- IF IX = 73 THEN _ ' IF PGUP THEN SET IX = 19
- IX = 19 : _
- RETURN
- IF IX = 79 THEN _ ' IF END THEN SET IX = 21
- IX = 21 : _
- RETURN
- IF IX = 81 THEN _ ' IF PGDN THEN SET IX = 20
- IX = 20 : _
- RETURN
- IF (IX-58) < 11 THEN _ ' IF F1 THROUGH F10 SET IX = 1
- IX = IX-58 : _ ' THROUGH 10 ACCORDINGLY.
- RETURN
- IF (IX-73) > 10 AND _ ' IF SHIFT-F1 THROUGH SHIFT-F8 THEN
- (IX-73) < 19 THEN _ ' SET IX = 11 THROUGH 18
- IX = IX - 73 : _ ' ACCORDINGLY.
- RETURN
- IX = 0
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO DISPLAY THE PAGE HEADER FOR CONFIG'S DISPLAYS *
- ' *****************************************************************************
- '
- 24800 CLS
- I! = FRE(C$)
- COLOR 0,7,0
- LOCATE 1,10
- PRINT "RBBS-PC CPC15.1 Default Configuration " + CONFIG.VERSION$;
- IF F THEN _
- GOSUB 24970
- COLOR FG,BG,BORDER
- PRINT " Page" + STR$(DISPLAYED.PAGE.NUMBER) + " of" + STR$(MAXIMUM.DISPLAYABLE.PAGES)
- RETURN
- 24890 A$ = "Enter parameter # to change, END to update, PgUp/PgDn to scroll:"
- 24900 LOCATE 24,5
- PRINT A$;
- X = POS(0) + 2
- PRINT STRING$((75-LEN(A$)),32);
- LOCATE 24,X
- COLOR FG,BG,BORDER
- HJ$ = "
- I! = FRE(C$)
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO DISPLAY CONFERENCE MAINTENANCE MODE IN CONFIG'S DISPLAYS *
- ' *****************************************************************************
- '
- 24970 LOCATE 2,1
- PRINT SPACE$(10)
- LOCATE 2,10
- A$ = "Private"
- IF F = 2 THEN _
- A$ = "Public"
- COLOR 31,0,0
- PRINT "(" + A$ + " Conference Maintenance Mode for " + _
- MID$(MAIN.MESSAGE.FILE$,1,INSTR(MAIN.MESSAGE.FILE$,"M.DEF")-1) + _
- ")";
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO READ THE MESSAGES FILE'S CHECKPOINT RECORD *
- ' *****************************************************************************
- '
- 30040 OPEN "R",2,MAIN.MESSAGE.FILE$,128 ' <---- read MESSAGES checkpoint record
- FIELD 2,128 AS RR$
- GET 2,1
- CALLS.TODATE! = VAL(MID$(RR$,1,8)) ' 1- 8 = number of last message on system
- FIRST.USER.RECORD = VAL(MID$(RR$,52,5)) ' 52- 56 = first rec. of user file
- CURRENT.USER.COUNT = VAL(MID$(RR$,57,5)) ' 57- 61 = next avail. user record
- HIGHEST.USER.RECORD = VAL(MID$(RR$,62,5)) ' 62- 66 = last rec. of user file
- FIRST.MESSAGE.RECORD = VAL(MID$(RR$,68,7)) ' 68- 74 = first rec. of msgs file
- NEXT.MESSAGE.RECORD = VAL(MID$(RR$,75,7)) ' 75- 81 = next avail. msgs record
- HIGHEST.MESSAGE.RECORD = VAL(MID$(RR$,82,7)) ' 82- 88 = last rec. of msgs file
- MAXIMUM.NUMBER.OF.MSGS = VAL(MID$(RR$,89,7)) ' 89- 95 = maximum number of messages
- MAXIMUM.NUMBER.OF.NODES = VAL(MID$(RR$,127,2)) '127-128 = maximum number of "nodes"
- CLOSE 2
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO GET THE LENGTH OF A FILE *
- ' *****************************************************************************
- '
- 30180 OPEN "R",2,FILE$,128 ' <---- get length of file
- FIELD 2,128 AS RR$
- UG = LOF(2)/128
- CLOSE 2
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO KEEP STRING SPACE CLEAN AND CLEAR LINE 24 *
- ' *****************************************************************************
- '
- 50340 I! = FRE(C$)
- LOCATE 24,1
- PRINT STRING$(79,32);
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY A MESSAGE ON LINE 24 *
- ' *****************************************************************************
- '
- 50345 GOSUB 50340
- LOCATE 24,5
- PRINT XX$;
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO BEEP AT THE SYSOP *
- ' *****************************************************************************
- '
- 60380 FOR I = 1 TO 3
- SOUND 1000*I,1
- NEXT
- RETURN
- END SUB
- ' $SUBTITLE: 'CNFGINIT - subroutine to initialize CONFIG's constants'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- CNFGINIT
- '
- ' INPUT PARAMETERS -- NONE
- '
- ' OUTPUT PARAMETERS -- CONFIG'S CONSTANTS INITIALIZED
- '
- ' SUBROUTINE PURPOSE -- TO INITIALIZE THE CONSTANTS USED BY CONFIG
- '
- 60385 SUB CNFGINIT STATIC
- '
- ' *****************************************************************************
- ' * INITALIZE ALL VARIABLES IF A .DEF FILE DOESN'T AREADY EXIST *
- ' *****************************************************************************
- '
- D$ = DD$ + ":"
- FALSE = 0
- TRUE = NOT FALSE
- SYSOP.SECURITY.LEVEL = 10
- ACT.MNTHS.B4.DELETING = 1
- ACTIVE.BULLETINS = 6
- ALWAYS.STREW.TO$ = ""
- ANS.MENU$ = D$ + "MENUA"
- ASK.IDENTITY = FALSE
- BG = 0
- BORDER = 0
- BUFFER.SIZE = 128
- BULLETIN.MENU$ = "BULLET"
- BULLETIN.PREFIX$ = "BULLET"
- BULLETINS.OPTIONAL = TRUE
- C$ = ""
- CALLERS.FILE$ = D$ + "CALLERS"
- CODE.TYPE = FALSE
- COM.PORT$ = "COM1"
- COMMANDS.BETWEEN.RINGS = FALSE
- COMMANDS.IN.PROMPT = TRUE
- COMMENTS.AS.MESSAGES = FALSE
- COMMENTS.FILE$ = D$ + "COMMENTS"
- COMPUTER.TYPE = 0
- CONFERENCE.MENU$ = D$ + "CONFENCE"
- CONFERENCE.VIEWER.SEC.LVL = 0
- CONFIG.VERSION$ = "(Version 3.02)" ' CPC15-1B
- DEFAULT.CATEGORY.CODE$ = "UC "
- DAYS.IN.SUBSCRIPTION.PERIOD = 365
- DAYS.TO.WARN = 60
- DIR.CATEGORY.FILE$ = D$ + "DIR.CAT"
- DEFAULT.MACHINE.TYPE$ = "IBMPC"
- DEFAULT.SECURITY.LEVEL = 5
- DIRECTORY.EXTENTION$ = "DIR"
- DIRECTORY.PATH$ = D$
- DISK.FOR.DOS$ = D$
- DISKFULL.GO.OFFLINE = TRUE
- DNLD.SUB = 0
- DOORS.AVAILABLE = FALSE
- DOORS.SECURITY.LEVEL = SYSOP.SECURITY.LEVEL
- DOORS.TERMINAL.TYPE = 8
- DOS.VERSION = 2
- DOWNLOAD.DRIVES$ = DD$ + DD$
- DOWNLOAD.TO.SUBDIR = FALSE
- DRIVE.FOR.BULLETINS$ = DD$
- DRIVE.FOR.HELP.FILES$ = DD$
- DTR.DROP.DELAY = 3
- DUMB.MODEM = FALSE
- END.OFFICE.HOURS = 2200
- EXPERT.USER = 0
- EXPIRED.SECURITY = DEFAULT.SECURITY.LEVEL
- EXTENDED.LOGGING = FALSE
- FC = 5
- FG = 7
- FILE.COMMANDS.DEFAULTS$ = "DGLNSUV"
- FILE.COMMANDS$ = FILE.COMMANDS.DEFAULTS$
- FILE.NOTIFY = FALSE
- FILES.FUNCTION$(1,1) = "D)ownload a file "
- FILES.FUNCTION$(2,1) = "G)oodbye "
- FILES.FUNCTION$(3,1) = "L)ist file directory "
- FILES.FUNCTION$(4,1) = "N)ew file search "
- FILES.FUNCTION$(5,1) = "S)earch files "
- FILES.FUNCTION$(6,1) = "U)pload a file "
- FILES.FUNCTION$(7,1) = "V)erbose ARC list "
- FILES.FUNCTION$(1,2) = "D"
- FILES.FUNCTION$(2,2) = "G"
- FILES.FUNCTION$(3,2) = "L"
- FILES.FUNCTION$(4,2) = "N"
- FILES.FUNCTION$(5,2) = "S"
- FILES.FUNCTION$(6,2) = "U"
- FILES.FUNCTION$(7,2) = "V"
- FILESEC.FILE$ = D$ + "FILESEC"
- GB = FC
- GLOBAL.COMMANDS.DEFAULTS$ = "H?QX"
- GLOBAL.COMMANDS$ = GLOBAL.COMMANDS.DEFAULTS$
- GLOBAL.FUNCTION$(1,1) = "H)elp on-line "
- GLOBAL.FUNCTION$(2,1) = "?)help on-line (=H) "
- GLOBAL.FUNCTION$(3,1) = "Q)uit this part "
- GLOBAL.FUNCTION$(4,1) = "X)Expert toggle on/off"
- GLOBAL.FUNCTION$(1,2) = "H"
- GLOBAL.FUNCTION$(2,2) = "?"
- GLOBAL.FUNCTION$(3,2) = "Q"
- GLOBAL.FUNCTION$(4,2) = "X"
- GO.TO.SHELL = TRUE
- HELP$(3) = "HELP03"
- HELP$(4) = "HELP04"
- HELP$(7) = "HELP07"
- HELP$(9) = "HELP09"
- HELP.EXTENSION$ = "HLP"
- HELP.FILE.PREFIX$ = "HELP0"
- HELP.PATH$ = D$
- IB = 0
- LEN.HASH = 31
- LEN.INDIV = 0
- LIMIT.DAILY.TIME = FALSE
- LIMIT.SEARCH.TO.FMS = FALSE
- LOCAL.PASSWORD$ = "RBBS-PC"
- MAIN.COMMANDS.DEFAULTS$ = "ABCDEFIJKOPRSTUVW"
- MAIN.COMMANDS$ = MAIN.COMMANDS.DEFAULTS$
- MAIN.FUNCTION$(1,1) = "A)nswer questionnaire "
- MAIN.FUNCTION$(2,1) = "B)ulletins "
- MAIN.FUNCTION$(3,1) = "C)omments "
- MAIN.FUNCTION$(4,1) = "D)oor subsystem "
- MAIN.FUNCTION$(5,1) = "E)nter message "
- MAIN.FUNCTION$(6,1) = "F)iles subsystem "
- MAIN.FUNCTION$(7,1) = "I)nitial welcome "
- MAIN.FUNCTION$(8,1) = "J)oin a conference "
- MAIN.FUNCTION$(9,1) = "K)ill messages "
- MAIN.FUNCTION$(10,1) = "O)perator page "
- MAIN.FUNCTION$(11,1) = "P)ersonal mail "
- MAIN.FUNCTION$(12,1) = "R)ead messages "
- MAIN.FUNCTION$(13,1) = "S)can messages header "
- MAIN.FUNCTION$(14,1) = "T)opic msg scan "
- MAIN.FUNCTION$(15,1) = "U)tilities subsystem "
- MAIN.FUNCTION$(16,1) = "V)iew a conference "
- MAIN.FUNCTION$(17,1) = "W)ho's on other nodes "
- MAIN.FUNCTION$(1,2) = "A"
- MAIN.FUNCTION$(2,2) = "B"
- MAIN.FUNCTION$(3,2) = "C"
- MAIN.FUNCTION$(4,2) = "D"
- MAIN.FUNCTION$(5,2) = "E"
- MAIN.FUNCTION$(6,2) = "F"
- MAIN.FUNCTION$(7,2) = "I"
- MAIN.FUNCTION$(8,2) = "J"
- MAIN.FUNCTION$(9,2) = "K"
- MAIN.FUNCTION$(10,2) = "O"
- MAIN.FUNCTION$(11,2) = "P"
- MAIN.FUNCTION$(12,2) = "R"
- MAIN.FUNCTION$(13,2) = "S"
- MAIN.FUNCTION$(14,2) = "T"
- MAIN.FUNCTION$(15,2) = "U"
- MAIN.FUNCTION$(16,2) = "V"
- MAIN.FUNCTION$(17,2) = "W"
- MAIN.MESSAGE.BACKUP$ = D$ + "MESSAGES.BAK"
- MAIN.MESSAGE.FILE$ = D$ + "MESSAGES"
- MAIN.USER.FILE$ = D$ + "USERS"
- MASTER.DIRECTORY.NAME$ = ""
- MAX.ALLOWED.MSGS.FRM.DEF = 5
- MAX.DESC.LEN = 40
- MAX.MESSAGE.LINES = 19
- MAX.USR.FILE.SIZE.FRM.DEF = 16
- MAXD = SYSOP.SECURITY.LEVEL
- MAXIMUM.DISPLAYABLE.PAGES = 13 ' CPC15-1B
- MAXIMUM.PASSWORD.CHANGES = 3
- MAXIMUM.VIOLATIONS = 5
- MAXIMUM.NUMBER.OF.NODES = 1
- MENU$(1) = D$ + "MENU1"
- MENU$(2) = D$ + "MENU2"
- MENU$(3) = D$ + "MENU3"
- MENU$(4) = D$ + "MENU4"
- MENU$(5) = D$ + "MENU5"
- MESSAGE.REMINDER = TRUE
- MIN.SEC.TO.VIEW = DEFAULT.SECURITY.LEVEL
- MINIMUM.LOGON.SECURITY = 0
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD = 5
- MINUTES.PER.SESSION! = 72
- MLCOM = FALSE
- MM = 5
- MNP.SUPPORT = FALSE
- MO$ = DD$
- MODEM.ANSWER.COMMAND$ = "ATQ0X1V1A"
- MODEM.COMMAND.DELAY.TIME = 1
- MODEM.COUNT.RINGS.COMMAND$ = "ATS1?"
- MODEM.GO.OFFHOOK.COMMAND$ = "ATQ1E1H1M0"
- MODEM.INIT.BAUD$ = "300"
- MODEM.INIT.COMMAND$ = "ATM0Q1S2=255S10=30E0S0=0Q0X1" ' CPC15-1B
- MODEM.INIT.WAIT.TIME = 2
- MODEM.RESET.COMMAND$ = "ATZ"
- MUSIC = FALSE
- NET.MAIL$ = "NONE" ' CPC15-1B
- NETWORK.TYPE = 0
- NETWORK.TYPE$ = "IBM's DOS"
- NEW.FILES.CHECK = FALSE
- NEWUSER.FILE$ = D$ + "NEWUSER"
- NEWUSER.SETS.DEFAULTS = TRUE
- OMIT.MAIN.DIRECTORY$ = "NO"
- OMIT.UPLOAD.DIRECTORY$ = "NO"
- OVERWRITE.SECURITY.LEVEL = SYSOP.SECURITY.LEVEL
- PAGE.LENGTH = 23
- PAGING.PRINTER.SUPPORT$ = ". "
- PASSWORD.FILE$ = D$ + "PASSWRDS"
- PCJR = 0
- PROTOCOL.PATH$ = D$
- PROMPT.BELL = 0
- PROMPT.HASH$ = "Name"
- PROMPT.INDIV$ = ""
- RBBS.BAT$ = D$ + "RBBS.BAT"
- RBBS.NAME$ = "RBBS-PC"
- RCTTY.BAT$ = D$ + "RCTTY.BAT"
- RECYCLE.TO.DOS = 0
- RECYCLE.TO.DOS$ = "INTERNAL"
- REDIRECT.IO.METHOD = TRUE
- REMEMBER.NEW.USERS = TRUE
- REMIND.FILE.TRANSFERS = FALSE
- REMIND.PROFILE = FALSE
- REQUIRE.NON.ASCII = TRUE
- REQUIRED.QUESTIONNAIRE$ = "NONE"
- REQUIRED.RINGS = 1
- RESTRICT.BAUD = FALSE
- RESTRICT.BY.DATE = FALSE
- RESTRICT.VALID.CMDS = FALSE
- RTS$ = "NO" ' CPC15-1B
- SEC.LVL.EXEMPT.FRM.PURGING = SYSOP.SECURITY.LEVEL
- SF = SYSOP.SECURITY.LEVEL
- SHOOT.YOURSELF = FALSE
- SHOW.SECTION = TRUE
- SL.CATEGORIZE.UPLOADS = SYSOP.SECURITY.LEVEL
- START.HASH = 1
- START.INDIV = 0
- START.OFFICE.HOURS = 800
- SURVIVE.NOUSER.ROOM = FALSE
- SYSOP.COMMANDS.DEFAULTS$ = "1234567"
- SYSOP.COMMANDS$ = SYSOP.COMMANDS.DEFAULTS$
- SYSOP.FUNCTION$(1,1) = " 1 List comments "
- SYSOP.FUNCTION$(2,1) = " 2 List CALLERS log "
- SYSOP.FUNCTION$(3,1) = " 3 Recover a message "
- SYSOP.FUNCTION$(4,1) = " 4 Erase comments "
- SYSOP.FUNCTION$(5,1) = " 5 User maintenance "
- SYSOP.FUNCTION$(6,1) = " 6 Toggle Page bell "
- SYSOP.FUNCTION$(7,1) = " 7 Exit to DOS "
- SYSOP.FUNCTION$(1,2) = " 1"
- SYSOP.FUNCTION$(2,2) = " 2"
- SYSOP.FUNCTION$(3,2) = " 3"
- SYSOP.FUNCTION$(4,2) = " 4"
- SYSOP.FUNCTION$(5,2) = " 5"
- SYSOP.FUNCTION$(6,2) = " 6"
- SYSOP.FUNCTION$(7,2) = " 7"
- SYSOP.FIRST.NAME$ = "TOM"
- SYSOP.LAST.NAME$ = "MACK"
- SYSOP.MENU.SECURITY.LEVEL = SYSOP.SECURITY.LEVEL
- SYSOP.PASSWORD.1$ = "RBBS-PC"
- SYSOP.PASSWORD.2$ = "CPC15"
- TIME.TO.DROP.TO.DOS = -1
- TRASHCAN.FILE$ = D$ + "TRASHCAN"
- TURN.PRINTER.OFF = FALSE
- TURBO.RBBS = TRUE
- UE = 5
- FMS.DIRECTORY$ = ""
- UPCAT.HELP$ = "UPCAT"
- UPLOAD.DIRECTORY$ = "99"
- UPLOAD.PATH$ = D$
- UPLOAD.SUBDIR$ = ""
- UPLOAD.TIME.FACTOR! = 0
- UPLOAD.TO.SUBDIR = FALSE
- USE.COLOR = FALSE
- USE.EXTERNAL.XMODEM = FALSE
- UTIL.COMMANDS.DEFAULTS$ = "BCFGLMPRSTU"
- UTIL.COMMANDS$ = UTIL.COMMANDS.DEFAULTS$
- UTILITY.FUNCTION$(1,1) = "B)aud rate "
- UTILITY.FUNCTION$(2,1) = "C)lock (time) "
- UTILITY.FUNCTION$(3,1) = "F)ile x-fer protocol "
- UTILITY.FUNCTION$(4,1) = "G)raphics "
- UTILITY.FUNCTION$(5,1) = "L)ines per page "
- UTILITY.FUNCTION$(6,1) = "M)sg margin setting "
- UTILITY.FUNCTION$(7,1) = "P)assword change "
- UTILITY.FUNCTION$(8,1) = "R)eview defaults "
- UTILITY.FUNCTION$(9,1) = "S)tatistics "
- UTILITY.FUNCTION$(10,1) = "T)oggle "
- UTILITY.FUNCTION$(11,1) = "U)ser log scan "
- UTILITY.FUNCTION$(1,2) = "B"
- UTILITY.FUNCTION$(2,2) = "C"
- UTILITY.FUNCTION$(3,2) = "F"
- UTILITY.FUNCTION$(4,2) = "G"
- UTILITY.FUNCTION$(5,2) = "L"
- UTILITY.FUNCTION$(6,2) = "M"
- UTILITY.FUNCTION$(7,2) = "P"
- UTILITY.FUNCTION$(8,2) = "R"
- UTILITY.FUNCTION$(9,2) = "S"
- UTILITY.FUNCTION$(10,2) = "T"
- UTILITY.FUNCTION$(11,2) = "U"
- WAIT.BEFORE.DISCONNECT = 180
- WELCOME.FILE$ = D$ + "WELCOME"
- WELCOME.INTERRUPTABLE = TRUE
- WILL.SUBDIRS.B.USED = FALSE
- FOR I = 1 TO NUM.SYSOP
- SYSOP.FUNCTION(I) = SF
- NEXT
- FOR I = 1 TO NUM.MAIN
- MAIN.FUNCTION(I) = MM
- NEXT
- FOR I = 1 TO NUM.FILES
- FILES.FUNCTION(I) = FC
- NEXT
- FOR I = 1 TO NUM.UTILITY
- UTILITY.FUNCTION(I) = UE
- NEXT
- FOR I = 1 TO NUM.GLOBAL
- GLOBAL.FUNCTION(I) = GB
- NEXT
- END SUB
- ' $SUBTITLE: 'ASKRO - ask a question at a specific row'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- ASKRO
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' ANS$ STRING TO PUT THE ANSWER IN
- ' STRNG$ STRING CONTAINING THE QUESTION
- ' RO ROW TO ASK THE QUESTION ON
- '
- ' OUTPUT PARAMETERS -- ANS$ RESPONSE FROM THE KEYBOARD
- '
- ' SUBROUTINE PURPOSE -- TO ASK A QUESTION ON THE PC'S DISPLAY AT A
- ' SPECIFIC ROW
- '
- SUB ASKRO (STRNG$,RO,ANS$) STATIC
- 61100 LOCATE RO,1
- PRINT SPACE$(79);
- LOCATE RO,5
- PRINT STRNG$;" ";
- LINE INPUT;ANS$
- END SUB
- ' $SUBTITLE: 'GETNUMYN - get a TRUE-FALSE answer to a YES OR NO question'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- GETNUMYN
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' STRNG$ STRING CONTAINING THE QUESTION
- '
- ' OUTPUT PARAMETERS -- ANS Returned value - -1 IF yes, 0 IF no
- '
- ' SUBROUTINE PURPOSE -- TO ASK A QUESTION ON THE PC'S DISPLAY AND GET A
- ' YES OR NO ANSWER CONVERTED TO TRUE/FALSE
- '
- SUB GETNUMYN (STRNG$,ANS) STATIC
- CALL GETYESNO (STRNG$,ANS$)
- ANS = FNYESNO (ANS$)
- END SUB
- ' $SUBTITLE: 'GETNUMYN - Ask a YES OR NO question'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- GETYESNO
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' ANS$ STRING TO PUT THE ANSWER IN
- ' STRNG$ STRING CONTAINING THE QUESTION
- '
- ' OUTPUT PARAMETERS -- ANS$ RESPONSE FROM THE KEYBOARD
- '
- ' SUBROUTINE PURPOSE -- TO ASK A QUESTION ON THE PC'S DISPLAY AND GET A
- ' YES OR NO ANSWER
- '
- SUB GETYESNO (STRNG$,ANS$) STATIC
- 61200 CALL ASKRO (STRNG$+" (YES or NO)",24,HJ$)
- L = LEN(HJ$)
- IF L<1 OR L>3 THEN _
- GOTO 61207
- CALL ALLCAPS(HJ$)
- X = INSTR("NY",LEFT$(HJ$,1))
- ON X GOTO 61210,61212
- 61207 BEEP
- GOTO 61200
- 61210 ANS$ = "NO"
- EXIT SUB
- 61212 ANS$ = "YES"
- EXIT SUB
- END SUB
- ' $SUBTITLE: 'ALLCAPS - convert a sting into all capital letters'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- ALLCAPS
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' STRNG$ STRING CONTAINING THE QUESTION
- '
- ' OUTPUT PARAMETERS -- STRNG$ CAPITALIZED STRING
- '
- ' SUBROUTINE PURPOSE -- TO CAPITALIZE A STRING
- '
- SUB ALLCAPS (STRNG$) STATIC
- FOR Z = 1 TO LEN(STRNG$)
- MID$(STRNG$,Z,1) = CHR$(ASC(MID$(STRNG$,Z,1)) + _
- 32*(ASC(MID$(STRNG$,Z,1))>96))
- NEXT
- END SUB
- ' $SUBTITLE: 'ASKUPOS - find the unique user field for USERS'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- ASKUPOS
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' HDR$ HEADER
- ' BEGIN.COL BEGINNING COLUMN OF FIELD
- ' FIELD.LEN LENGTH OF FIELD IN USER'S RECORD
- ' PRMPT$ PROMPT TO GIVE FOR FIELD
- '
- ' OUTPUT PARAMETERS -- ABOVE INPUTS UPDATED WITH USER'S RESPONSES
- '
- ' SUBROUTINE PURPOSE -- TO ASK THE SYSOP WHAT UNIQUE FIELD IN THE USERS
- ' RECORD IS TO BE ASKED FOR AT LOGON
- '
- SUB ASKUPOS (HDR$,BEGIN.COL,FIELD.LEN,PRMPT$) STATIC
- CLS
- LOCATE 3,20
- PRINT HDR$;
- 61300 LOCATE 6,5
- PRINT "1. BEGINNING COLUMN in USERS file";TAB(44);STR$(BEGIN.COL);" "; ' CPC15-1B
- LOCATE 8,5
- PRINT "2. Number of CHARACTERS to use";TAB(44);STR$(FIELD.LEN);" ";
- LOCATE 10,5
- PRINT "3. PROMPT to display to callers";TAB(45);PRMPT$;SPACE$(34-LEN(PRMPT$));
- 61310 CALL ASKRO ("Select option to change (1-3, ENTER to end)",24,X$)
- IF X$ = "" THEN _
- EXIT SUB
- X = VAL(X$)
- IF X < 1 OR X > 3 THEN _
- GOTO 61310
- ON X GOTO 61320,61330,61340
- 61320 CALL ASKRO ("New BEGINNING COLUMN",24,HJ$)
- IF HJ$ = "" THEN _
- GOTO 61320
- X = VAL(HJ$)
- IF X < 0 OR X > 128 THEN _
- GOTO 61320
- BEGIN.COL = X
- GOTO 61300
- 61330 CALL ASKRO ("New # CHARACTERS to use",24,HJ$)
- IF HJ$ = "" THEN _
- GOTO 61330
- X = VAL(HJ$)
- IF X < 0 OR X > 31 THEN _
- GOTO 61330
- FIELD.LEN = X
- GOTO 61300
- 61340 CALL ASKRO ("New PROMPT",24,HJ$)
- IF LEN(HJ$) > 34 THEN _
- GOTO 61340
- PRMPT$ = HJ$
- GOTO 61300
- END SUB
- ' $SUBTITLE: 'ANYNUMBER - input any numeric value'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- ANYNUMBER
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' PRMPT$ Prompt
- '
- ' OUTPUT PARAMETERS -- RETURNED.VALUE! Value returned
- '
- ' SUBROUTINE PURPOSE -- To get a numeric value
- '
- SUB ANYNUMBER (PRMPT$,RETURNED.VALUE!) STATIC
- 61400 CALL ASKRO (PRMPT$,24,HJ$)
- RETURNED.VALUE! = VAL(HJ$)
- END SUB
- ' $SUBTITLE: 'ANYINTEGER - input any integer value'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- ANYINTEGER
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' PRMPT$ Prompt
- '
- ' OUTPUT PARAMETERS -- RETURNED.VALUE Value returned
- '
- ' SUBROUTINE PURPOSE -- To get an integer value
- '
- SUB ANYINTEGER (PRMPT$,RETURNED.VALUE) STATIC
- 61450 CALL ANYNUMBER (PRMPT$,RETURNED.VALUE!)
- IF RETURNED.VALUE! > 32000.0 OR RETURNED.VALUE! < -32000.0 THEN_
- BEEP : _
- GOTO 61450
- RETURNED.VALUE = RETURNED.VALUE!
- END SUB
- ' $SUBTITLE: 'MMINTEGER - input any integer value with range check'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- MMINTEGER
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' PRMPT$ Prompt
- ' MIN Minmum value inclusive
- ' MAX Maximum value inclusive
- '
- ' OUTPUT PARAMETERS -- RETURNED.VALUE Value returned
- '
- ' SUBROUTINE PURPOSE -- To get an integer value within a range
- '
- SUB MMINTEGER (PRMPT$,MIN,MAX,RETURNED.VALUE) STATIC
- 61500 CALL ANYINTEGER (PRMPT$,RETURNED.VALUE)
- IF RETURNED.VALUE < MIN OR RETURNED.VALUE > MAX THEN _
- BEEP : _
- GOTO 61500
- END SUB
- ' $SUBTITLE: 'FINDFILE - Determine whether a file exists'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- FINDFILE
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' FILNAME$ File to look for
- ' FEXISTS Whether file exists
- '
- ' OUTPUT PARAMETERS -- RETURNED.VALUE Value returned
- '
- ' SUBROUTINE PURPOSE -- Determine whether passed file FILNAME$ exists
- ' Return true or false in FEXISTS
- '
- SUB FINDFILE (FILNAME$,FEXISTS) STATIC
- 61600 CALL RBBSFIND (FILNAME$,Z,Y,M,D)
- FEXISTS = (Z = 0)
- END SUB
- ' $SUBTITLE: 'CHKFMSDIR - Validate structure of FMS directory'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- CHKFMSDIR
- '
- ' INPUT PARAMETERS -- PARAMETER MENANING
- ' FMSDIR$ Name of FMS Directory
- ' LINELEN Proper length of Lines
- ' (excluding CR/LF at end)
- ' FMS.DIRCAT$ Category file for FMS
- '
- ' OUTPUT PARAMETERS -- RETURNED.VALUE Value returned
- '
- ' SUBROUTINE PURPOSE -- Determine whether passed file FILNAME$ exists
- ' Return true or false in FEXISTS
- '
- 61700 SUB CHKFMSDIR (FMSDIR$,LINELEN,FMS.DIRCAT$) STATIC
- DIM CAT.CODE$(99)
- CLS
- LOCATE 5,20
- PRINT "Checking FMS file ";FMSDIR$;
- NLINES = 0
- LOCATE 7,27
- PRINT "Line #";
- LOCATE 9,20
- COLOR 0,7
- PRINT " Last Line with an ERROR ";
- LOCATE 12,28
- PRINT " Last ERROR ";
- COLOR 7,0
- NCATS = 0
- CALL FINDFILE (FMS.DIRCAT$,FEXISTS)
- IF FEXISTS THEN _
- NCATS = 1:_
- CAT.CODE$(1) = "***":_
- OPEN FMS.DIRCAT$ FOR INPUT AS #2 : _
- WHILE NOT EOF(2) AND NCATS < UBOUND(CAT.CODE$) :_
- NCATS = NCATS + 1:_
- INPUT #2,X$,Y$,X$:_
- CAT.CODE$(NCATS)= Y$:_
- WEND:_
- CLOSE 2
- GO.ON = -1
- CALL FINDFILE (FMSDIR$,FEXISTS)
- IF NOT FEXISTS THEN _
- LOCATE 6,25 : _
- PRINT "File not found"; : _
- GOTO 61750
- OPEN FMSDIR$ FOR INPUT AS #2
- WHILE NOT EOF(2) AND GO.ON
- NLINES = NLINES + 1
- LINE INPUT #2, A$
- L = LEN(A$)
- LOCATE 7,36
- PRINT NLINES;
- IF L > LINELEN THEN _
- CALL HANDERR (A$,NLINES,"Too LONG: has"+STR$(L)+" chars but should have"+STR$(LINELEN),GO.ON):_
- IF NOT GO.ON THEN 61740
- IF L < LINELEN THEN _
- CALL HANDERR (A$,NLINES,"Too SHORT: has"+STR$(L)+" chars but should have"+STR$(LINELEN),GO.ON):_
- IF NOT GO.ON THEN 61740
- IF L > 30 THEN _
- X$ = MID$(A$,24,2)+MID$(A$,27,2)+MID$(A$,30,2) : _
- I = 1 : _
- WHILE I < 7 AND INSTR("0123456789",MID$(X$,I,1))>0 : _
- I = I+1: _
- WEND: _
- IF I < 7 THEN _
- CALL HANDERR (A$,NLINES,"INVALID CHARACTER <"+MID$(X$,I,1)+"> in date field",GO.ON) : _
- IF NOT GO.ON THEN 61740
- I = 1
- Y$ = MID$(A$,L-2)
- CALL REMOVE (Y$," ")
- WHILE I <= NCATS AND Y$ <> CAT.CODE$(I)
- I = I+1
- WEND
- IF I > NCATS THEN _
- CALL HANDERR (A$,NLINES,"Category code <"+Y$+"> NOT IN "+FMS.DIRCAT$,GO.ON)
- 61740 WEND
- 61750 CLOSE 2
- IF GO.ON THEN _
- LOCATE 15,15:_
- BEEP:_
- CALL ASKRO (" Done checking. Press [ENTER] to continue",20,ANS$)
- END SUB
- SUB HANDERR (ERRLINE$,ERRL,ERRMES$,GO.ON) STATIC
- LOCATE 10,1
- PRINT SPACE$(80);
- LOCATE 10,1
- PRINT ERRLINE$;
- LOCATE 9,45
- PRINT STR$(ERRL);
- LOCATE 13,1
- PRINT SPACE$(79);
- L = LEN(ERRMES$)
- IF L > 68 THEN _
- STRT = 1_
- ELSE _
- STRT = (70-L)/2
- LOCATE 13,STRT
- PRINT ERRMES$;
- CALL ASKRO (" CONTINUE checking (Y/N,[ENTER]=Y) ",20,ANS$)
- IF ANS$ = "" THEN ANS$ = "Y"
- CALL ALLCAPS (ANS$)
- GO.ON = FNYESNO (ANS$)
- END SUB
- ' $SUBTITLE: 'REMOVE - subroutine to delete a string from within a string'
- ' $PAGE
- '
- ' SUBROUTINE NAME -- REMOVE
- '
- ' INPUT PARAMETERS -- PARAMETER MEANING
- ' BADSTRING$ STRING CONTAINING CHARACTERS
- ' TO BE DELETED FROM "L$"
- ' L$ STRING TO BE ALTERED
- '
- ' OUTPUT PARAMETERS -- L$ WITH THE CHARACTERS IN
- ' "BADSTRING#" DELETED FROM IT
- '
- ' SUBROUTINE PURPOSE -- TO REMOVE ALL INSTANCES OF THE CHARACTERS IN
- ' "BADSTRING$" FROM "L$"
- '
- SUB REMOVE (L$,BADSTRNG$) STATIC
- 61800 J = 0
- FOR I=1 TO LEN(L$)
- IF INSTR(BADSTRNG$,MID$(L$,I,1)) = 0 THEN_
- J = J+1:_
- MID$(L$,J,1) = MID$(L$,I,1)
- NEXT I
- L$ = LEFT$(L$,J)
- END SUB